package sample;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyFrame extends JFrame {

    JLabel timeLabel = new JLabel("00:00:00");
    JTextField textField = new JTextField("youyou-xiaoyou");


    public MyFrame(String title){
        super(title);

        //构建面板， 将面板加入窗体(容器)
        JPanel root = new JPanel();
        this.setContentPane(root);

        //JLabel控件
        timeLabel.setFont(new Font("楷体",Font.PLAIN,14));
        root.add(timeLabel);

        //文本框JTextField
        //设置文本 textField.setText(str)
        //获取文本 str = textField.getText()
//        JTextField textField = new JTextField("youyou-xiaoyou");将其放到方法体外部作为类的属性
        root.add(textField);

        //复选框控件JCheckBox
        //设置选中状态agreeField.setField(true/false)
        //是否选中 agree.isSelected()
        JCheckBox agreeField = new JCheckBox("同意用户协议");
        root.add(agreeField);


        //下拉列表JComboBox
        //数据项：
        //添加数据项 addItem()
        //数据项的个数 getItemCount()
        //获取数据项 getItemAt(index)
        //选中的项：
        //获取选项中的索引 getSelectedIndex()
        //设置选中项 setSelectIndex()
        //按索引删除 remove(index)
        JComboBox<String> colorField = new JComboBox<>();
        colorField.addItem("红");
        colorField.addItem("绿");
        colorField.addItem("蓝");
        root.add(colorField);



        //JButton控件
        JButton button = new JButton("确定时间");
        //设置字体颜色大小
        button.setFont(new Font("楷体",Font.PLAIN,14));
        button.setForeground(new Color(84,255,159));
        button.setBackground(new Color(100,100,100));
        button.setOpaque(true);//改变透明状态
        button.setPreferredSize(new Dimension(300,30));//改变控件大小
        button.setHorizontalAlignment(SwingConstants.CENTER);//设置水平居中


        root.add(button);
        root.add(new JLabel("hello"));

        //点击OK按钮获取文本框中的内容
        JButton button1 = new JButton("OK" );
        root.add(button1);
        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                gText();
            }
        });

        //给button添加一个监听器
        ActionListener listener = new MyActionListener();
        button.addActionListener(listener);

        //匿名内部类
//        button.addActionListener(new ActionListener(){
//
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                System.out.println("匿名内部类");
//                showTime();
//            }
//        });

        //Lambda表达式
//        button.addActionListener((e -> {
//            showTime();
//        }));

    }

    public void gText(){
        String str = textField.getText();
        System.out.println(str);
    }


    //内部类MyActionListener
    private class MyActionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            //显示当前时间
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
            String timeStr = sdf.format(new Date());
            System.out.println(timeStr);

            //窗口timeLabel显示当前时间
            timeLabel.setText(timeStr);
        }
    }
}
